/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package game;

import framework.Screen;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author edilson
 */
public class Legiao {

    private int navesPorLegiao = 5;
    private int numeroLegioes = 6;
    private int distanciaEntreLegioes = 500;
    private int indiceBombas = 1000;
    private Inimigo inimigo;
    private List<Inimigo> inimigos;
    private List<Integer> tiposInimigos;
    int contType;

    public Legiao() {
        tiposInimigos = new ArrayList<Integer>();
        navesPorLegiao = 2;
        distanciaEntreLegioes = 500;
        numeroLegioes = 30;
        contType = 0;
    }

    public Legiao(int navesPorLegiao, int numeroLegioes) {

        tiposInimigos = new ArrayList<Integer>();
        this.numeroLegioes = numeroLegioes;
        this.navesPorLegiao = navesPorLegiao;

        distanciaEntreLegioes = 500;
        contType = 0;
    }

    public List<Inimigo> criarNaves() {

        Inimigo inimigo;
        List<Inimigo> inimigos = new ArrayList<Inimigo>();

        if (!this.tiposInimigos.isEmpty()) {
            int y = 0;
            int x = 10;

            int tipo = tiposInimigos.get(0);

            for (int i = 0; i < numeroLegioes; i++) {

                tipo = tiposInimigos.get(contType);
                contType++;
                if (contType >= tiposInimigos.size()) {
                    contType = 0;
                }


                if (i > 0) {
                    y += distanciaEntreLegioes;
                }

                if (x == 10) {
                    x = Screen.getWidth() - 100;
                } else {
                    x = 10;
                }


                for (int j = 0; j < navesPorLegiao; j++) {
                    inimigo = new Inimigo(tipo);
                    y += 100;
                    inimigo.setX(x);
                    inimigo.setY(-(y));
                    inimigo.setIndiceBombas(indiceBombas);

                    inimigos.add(inimigo);

                }
            }
        }
        return inimigos;

    }

    public int getDistanciaEntreLegioes() {
        return distanciaEntreLegioes;
    }

    public void setDistanciaEntreLegioes(int distanciaEntreLegioes) {
        this.distanciaEntreLegioes = distanciaEntreLegioes;
    }

    public int getIndiceBombas() {
        return indiceBombas;
    }

    public void setIndiceBombas(int indiceBombas) {
        this.indiceBombas = indiceBombas;
    }

    public Inimigo getInimigo() {
        return inimigo;
    }

    public void setInimigo(Inimigo inimigo) {
        this.inimigo = inimigo;
    }

    public List<Inimigo> getInimigos() {
        return inimigos;
    }

    public void setInimigos(List<Inimigo> inimigos) {
        this.inimigos = inimigos;
    }

    public int getNavesPorLegiao() {
        return navesPorLegiao;
    }

    public void setNavesPorLegiao(int navesPorLegiao) {
        this.navesPorLegiao = navesPorLegiao;
    }

    public int getNumeroLegioes() {
        return numeroLegioes;
    }

    public void setNumeroLegioes(int numeroLegioes) {
        this.numeroLegioes = numeroLegioes;
    }

    public List<Integer> getTiposInimigos() {
        return tiposInimigos;
    }

    public void setTiposInimigos(List<Integer> tiposInimigos) {
        this.tiposInimigos = tiposInimigos;
    }

    public void addType(int type) {
        this.tiposInimigos.add(type);
    }
}
